﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Collections;
using System.IO;
using System.Text;
using System.Data;
using System.Data.OleDb;
using System.Xml;
using System.Configuration;


namespace CongresoLatino
{
    public partial class CargarPlantilla : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
                BinDatoscargarPlantilla();


        }

        protected void btnCargarPlantilla_Click(object sender, EventArgs e)
        {
            if (fuImportar.HasFile)
            {

                int intContador = 0;
                try
                {
                    DataSet objDataSet = ExcelImport.ImportExcelXLS(fuImportar.PostedFile, true);
                    if (objDataSet.Tables[0].Rows.Count > 0)
                    {



                        Model.DataClassesCongresoDataContext contexto = new Model.DataClassesCongresoDataContext(ConfigurationManager.AppSettings["Conn"]);

                        //Divisiones
                        foreach (DataRow objRowExcel in objDataSet.Tables[0].Rows)
                        {
                            string strTempIdDivision = "";
                            var datosPlantilla = from h in contexto.Divisiones
                                                 where
                                                 h.Nombre_Division == objRowExcel["Div."].ToString()
                                                 select h;
                            foreach (var v in datosPlantilla)
                            {
                                strTempIdDivision = v.Id_Division.ToString();
                            }
                            if (strTempIdDivision == "")
                            {
                                Model.Divisione objDivision = new Model.Divisione();
                                objDivision.Nombre_Division = objRowExcel["Div."].ToString();
                                contexto.Divisiones.InsertOnSubmit(objDivision);
                                contexto.SubmitChanges();
                                strTempIdDivision = objDivision.Id_Division.ToString();
                            }
                        }


                        //cargos
                        foreach (DataRow objRowExcel in objDataSet.Tables[0].Rows)
                        {
                            string strTempIdCargos = "";
                            var datosPlantilla = from h in contexto.Cargos
                                                 where
                                                 h.Nombre_Cargo == objRowExcel["Position"].ToString()
                                                 select h;
                            foreach (var v in datosPlantilla)
                            {
                                strTempIdCargos = v.Id_Cargo.ToString();
                            }
                            if (strTempIdCargos == "")
                            {
                                Model.Cargo objCargo = new Model.Cargo();
                                objCargo.Nombre_Cargo = objRowExcel["Position"].ToString();
                                contexto.Cargos.InsertOnSubmit(objCargo);
                                contexto.SubmitChanges();
                                strTempIdCargos = objCargo.Id_Cargo.ToString();
                            }
                        }

                        //empleados
                        foreach (DataRow objRowExcel in objDataSet.Tables[0].Rows)
                        {
                            string strTempIdEmpleados = "";
                            var datosPlantilla = from h in contexto.Empleados
                                                 where
                                                 h.Codigo_Empleado == objRowExcel["Emp. Id"].ToString()
                                                 select h;
                            foreach (var v in datosPlantilla)
                            {
                                strTempIdEmpleados = v.Codigo_Empleado.ToString();
                            }
                            if (strTempIdEmpleados == "")
                            {
                                Model.Empleado objEmpleado = new Model.Empleado();
                                objEmpleado.Codigo_Empleado = objRowExcel["Emp. Id"].ToString();
                                objEmpleado.Apellido_Empleado = objRowExcel["Last Name"].ToString();
                                objEmpleado.Nombre_Empleado = objRowExcel["First Name"].ToString();
                                DateTime obj = Convert.ToDateTime (objRowExcel["Hire Date"].ToString());
                                objEmpleado.Hire_Date = obj;
                                objEmpleado.Salario_Proyectado = objRowExcel["Annual Salary"].ToString();
                                objEmpleado.True_Gross = objRowExcel["True Gross"].ToString();
                                contexto.Empleados.InsertOnSubmit(objEmpleado);
                                contexto.SubmitChanges();
                                strTempIdEmpleados = objEmpleado.Codigo_Empleado.ToString();
                            }
                        }

                        //Guardar PLantilla
                        //        foreach (DataRow objRowExcel in objDataSet.Tables[0].Rows)
                        //        {
                        //            string strTempIdPlantilla = "";
                        //            var datosPlantilla = from h in contexto.Plantillas
                        //                                 where
                        //                                 h.Codigo_Empleado == objRowExcel["Emp. Id"].ToString()
                        //                                 select h;
                        //            foreach (var v in datosPlantilla)
                        //            {
                        //                strTempIdEmpleados = v.Codigo_Empleado.ToString();
                        //            }
                        //            if (strTempIdEmpleados == "")
                        //            {


                        //                Model.Plantilla objPLANTILLA = new Model.Plantilla();
                        //                objPLANTILLA.Code = objRowExcel["SS#"].ToString();
                        //                objPLANTILLA.Codigo_Empleado = objRowExcel["Emp. Id"].ToString();
                        //                objPLANTILLA.Fecha_Plantilla = objRowExcel["Check Date"].ToString();
                        //                objPLANTILLA.Pagos = objRowExcel["Salary"].ToString();
                        //                objPLANTILLA.Neto = objRowExcel["Net"].ToString();
                        //                objPLANTILLA.Ready_Chex = objRowExcel["Ready Chex"].ToString();
                        //                objPLANTILLA.C = objRowExcel["C"].ToString();

                        //                if (objRowExcel["PESO"] != null)
                        //                    if (objRowExcel["PESO"].ToString() != "")
                        //                        objAUT_VINE.AVI_PESO = Convert.ToDecimal(objRowExcel["PESO"].ToString());

                        //                if (objRowExcel["VALOR"] != null)
                        //                    if (objRowExcel["VALOR"].ToString() != "")
                        //                        objAUT_VINE.AVI_VALOR = Convert.ToDecimal(objRowExcel["VALOR"].ToString());

                        //                if (objRowExcel["IdOrigen"] != null)
                        //                    if (objRowExcel["IdOrigen"].ToString() != "")
                        //                        objAUT_VINE.ACL_ID_ORIGEN = Convert.ToDecimal(objRowExcel["IdOrigen"].ToString());

                        //                if (objRowExcel["IdDestino"] != null)
                        //                    if (objRowExcel["IdDestino"].ToString() != "")
                        //                        objAUT_VINE.ACL_ID_DESTINO = Convert.ToDecimal(objRowExcel["IdDestino"].ToString());
                        //                objAUT_VINE.USU_ID = Usuario.UsuId;
                        //                contexto.AUT_VINEs.InsertOnSubmit(objAUT_VINE);
                        //                contexto.SubmitChanges();
                        //            }
                        //            else
                        //            {
                        //                if (lblVinesYaCargados.Text == "")
                        //                    lblVinesYaCargados.Text = strVinExiste;
                        //                else
                        //                    lblVinesYaCargados.Text = lblVinesYaCargados.Text + "," + strVinExiste;
                        //            }
                        //        }




                        //        if (lblVinesYaCargados.Text != "")
                        //            msgBox1.alert("Vines no Cargados" + ":" + lblVinesYaCargados.Text);

                        //        msgBox1.alert("Vines Cargados: " + intContador.ToString());

                        //        BinDatoscargarVinesDisponibles();
                    }
                }
                catch (Exception ex)
                {
                    ex.Message.ToString ();
                    // msgBox1.alert("Error: " + ex.Message);

                }
            }
        }

        private void BinDatoscargarPlantilla()
        {
            try
            {
                Model.DataClassesCongresoDataContext contexto = new Model.DataClassesCongresoDataContext(ConfigurationManager.AppSettings["Conn"]);
                var datos = from a in contexto.PAS_CONSULTAR_PLANTILLA()
                            select a;

                if (datos == null) return;
                ASPxGridViewPlantilla.BeginUpdate();
                ASPxGridViewPlantilla.DataSource = datos;
                ASPxGridViewPlantilla.DataBind();
                ASPxGridViewPlantilla.EndUpdate();
                //OrdenCargueDataTableCache = GetDataView(ASPxGridViewPlantilla);
            }
            catch (Exception ex)
            {
                ex.Message.ToString();
            }

        }
    }
}